package com.rc.saas.tenant.service.invoice;

import com.github.pagehelper.PageInfo;
import com.rc.saas.tenant.base.BaseService;
import com.rc.saas.tenant.mapper.invoice.InvoiceApplyMapper;
import com.rc.saas.tenant.model.invoice.InvoiceApply;
import com.rc.saas.tenant.model.invoice.InvoiceApplyExample;
import com.rc.saas.tenant.search.invoice.InvoiceSearch;
import com.rc.saas.tenant.vo.invoice.CountInvoice;
import com.rc.saas.tenant.vo.invoice.InvoiceApplyPrintVo;
import com.rc.saas.tenant.vo.invoice.InvoiceApplyResultVo;
import com.rc.saas.tenant.vo.order.OrderPrintVo;

import java.util.List;

/**
 * @author frog
 * @date 2021/3/19
 */
public interface InvoiceApplyService extends BaseService<Long, InvoiceApply, InvoiceApplyExample, InvoiceApplyMapper> {
    List<InvoiceApplyPrintVo> exportInvoiceApply(InvoiceSearch invoiceSearch);

    List<OrderPrintVo> exportInvoiceOrder(Long invoiceApplyId);

    void saveReview(Long invoiceApplyId, String status);

    PageInfo<InvoiceApplyResultVo> listPageInvoiceApply(InvoiceSearch invoiceSearch);

    CountInvoice countInvoiceByStation(Long elecStationId,String tenantCode,String tenantOperatorCode);

    PageInfo<InvoiceApplyResultVo> listPageInvoiceApplyByProxy(InvoiceSearch invoiceSearch);

    void addInvoiceApply(InvoiceApply invoiceApply, String orderNum);

    /**
     * 根据id查询(申请人为空时取member中nickname)
     * @param id
     * @return
     */
    InvoiceApply selectByKey(Long id);
}
